本发明提供了一种胖树结构组网数据中心内部节点IP地址的自动分配方法,包括以下步骤:首先进行DHCP服务初始配置,针对以胖树结构进行组网的数据中心内部网络,修改和自定制网络中的DHCP服务器端和客户端以支持基于规则的IP地址分配;其次是进行具体的IP地址分配,网络节点按照距离DHCP服务器的跳数,逐层地由所在Pod内的DHCP服务器进行IP地址分配,其中Pod内的交换机在获得地址后将开启DHCP中继功能。这种分配方法将胖树结构的数据中心网络与DHCP结合,不仅实现了对胖树结构组网的数据中心网络中所有节点地址的自动分配,而且可以探测和解决网络异常问题,节省大量的人力物力,保障数据中心网络的正常、稳定运行。
1.一种胖树结构组网数据中心内部节点IP地址的自动分配方法,其特征在于,包括以下步骤:首先进行DHCP服务初始配置,针对以胖树结构进行组网的数据中心内部网络,修改和自定制网络中的DHCP服务器端和客户端以支持基于规则的IP地址分配;所述进行DHCP服务初始配置进一步包括:步骤101:在每个Pod中任选一台服务器作为DHCP服务器,其IP地址为
10.PodID.0.2,PodID∈[0,k-1],k为交换机端口数量,由其负责所在Pod内所有其余的网络节点的地址分配;步骤102:在设备制造阶段,自定制改造每台DHCP服务器,在收到DHCP客户端的地址请求报文时,查看报文中的Hops字段也即DHCP报文经过的DHCP中继的数目、Giaddr字段也即DHCP请求报文经过的第一个DHCP中继的IP地址和Vendorxa0Option字段也即供应商类别标识符,根据此三个字段组成的三元组判断发出地址请求的DHCP客户端在网络拓扑中的位置,从而为该DHCP客户端分配相应的地址段;步骤103:在设备制造阶段,自定制改造任意一个Pod中的DHCP服务器,仅有这台服务器响应Vendorxa0Option字段内容为Corexa0Switch的DHCP报文,即仅有这台DHCP服务器负责所有核心层交换机的IP地址分配;步骤104:在设备制造阶段,自定制改造每个DHCP客户端,其发出申请地址的报文中的Vendorxa0Option字段对应此DHCP客户端在胖树结构网络中的节点类型,包括Host,Podxa0Switch和Corexa0Switch三种字段内容,分别对应网络拓扑中的其它服务器、Pod交换机和核心层交换机;进一步改造DHCP客户端中的Pod交换机,使其默认在获得IP地址后,才能而且必须打开中继功能;步骤105:对DHCP服务器进行地址分配规则设置,具体是首先对接收到的地址请求报文中的Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)进行判断,规则如下:如果(H,G,VO)为(0,0.0.0.0,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的与DHCP服务器直接连接的边缘层交换机;如果(H,G,VO)为(1,本Pod中与DHCP服务器直接连接的边缘层交换机IP地址,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的聚合层交换机;如果(H,G,VO)为(1,本Pod中与DHCP服务器直接连接的边缘层交换机IP地址,Host),则发来地址请求的DHCP客户端为本Pod中的与DHCP服务器连接同一台边缘层交换机的其它服务器;如果(H,G,VO)为(2,本Pod中聚合层交换机IP地址,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的不与DHCP服务器直接连接的边缘层交换机;如果(H,G,VO)为(2,负责核心层交换机的Pod中所对应的聚合层交换机IP地址,Corexa0Switch),则发来地址请求的DHCP客户端为核心层交换机;如果(H,G,VO)为(3,本Pod中不与DHCP服务器直接连接的边缘层交换机IP地址,Host),则发来地址请求的DHCP客户端为本Pod中的不与DHCP服务器连接同一台边缘层交换机的其它服务器;其次是进行具体的IP地址分配,网络节点按照距离DHCP服务器的跳数,逐层由所在Pod中的DHCP服务器进行IP地址分配,其中Pod内的交换机在获得地址后将开启DHCP中继功能;所述进行DHCP服务具体的IP分配进一步包括:步骤201:对于每个Pod中与DHCP服务器之间相连的边缘层交换机E
i1,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch;报文不经过中继直接到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(0,0.0.0.0,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的IP地址:10.PodID.0.1;步骤202:得到地址的该边缘层交换机触发DHCP中继功能,中继单播对象设置为给该交换机分配地址的DHCP服务器;步骤203:对于每个Pod中的聚合层交换机A
ix,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch;报文经过中继E
i1到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(1,E
i1的IP地址,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.(k/2).1到10.PodID.(k-1).1的IP地址段;步骤204:在步骤203中得到地址的聚合层交换机触发中继功能,并设置中继单播对象为E
i1;步骤205:对于每个Pod中与DHCP服务器连接同一台边缘层交换机的其它服务器,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Host;报文经过步骤201中得到地址的边缘层交换机E
i1到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(1,E
i1的IP地址,Host),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.0.3到
10.PodID.0.(k/2+1)的IP地址段;步骤206:对于每个Pod中不与DHCP服务器直接连接的边缘层交换机E
ix,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch;报文经过步骤203中得到地址的任一聚合层交换机A
ix和E
i1到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(2,A
ix的IP地址,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.1.1到10.PodID.(k/2-1).1的IP地址段;步骤207:在步骤206中得到地址的边缘层交换机触发中继功能,并设置中继单播对象为A
ix;步骤208:对于核心层交换机,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Corexa0Switch;报文经过负责核心层交换机地址分配的Pod中与该核心层交换机直接相连的聚合层交换机A
ix和边缘层交换机E
i1到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(2,A
ix的IP地址,Corexa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.k.(SwitchID–k/2+1).1到10.k.(SwitchID–k/2+1).(k/2)的IP地址段,其中SwitchID表示A
ix的IP地址的第三段的数字;步骤209:核心交换机获得地址后不打开中继选项;步骤210:对于每个Pod中和DHCP服务器不在一个边缘层交换机下的其它服务器,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Host;报文经过与其直接相连的边缘层交换机E
ix、E
ix的中继对象A
ix、E
i1到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(3,E
ix的IP地址,Host),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从
10.PodID.SwitchID.2到10.PodID.SwitchID.(k-1)的IP地址段,其中SwitchID等于E
ix的IP地址第三段的数字。
2.根据权利要求1所述的胖树结构组网数据中心内部节点IP地址的自动分配方法,其特征在于,在进行DHCP服务具体的IP分配步骤之后还包括:对于物理连线错误和节点瘫痪进行判断和解决步骤;所述对于物理连线错误和节点瘫痪进行判断和解决步骤具体包括:步骤301:如果网络节点之间的物理连线出现错误,则在DHCP服务器中查看报文中的Hops、Giaddr和Vendorxa0Option字段,如果这三个字段内容不符合步骤105中的判断规则,则说明网络的物理连接有误,DHCP服务器通过日志记录下该DHCP客户端的信息,并进行告警;步骤302:DHCP服务器采用数据中心内部备份的方法周期性存储自身信息;如果是DHCP服务器发生故障或瘫痪,则将启用新服务器替换,然后再下载已备份的数据进行恢复;如果是DHCP客户端的网络节点发生故障或瘫痪,则首先找到其MAC地址,然后由人工把分配的记录从DHCP服务器的记录库中删除,再加入替换节点,然后按照步骤201-210的方法重新为其分配地址。
技术领域本发明涉及网络技术领域,尤其涉及一种胖树结构组网数据中心内部节点IP地址的自动分配方法。
背景技术数据中心(Dataxa0Center),或称为服务器农场(Serverxa0Farm),指用于安置计算机系统及相关部件(如网络、存储系统)的设施,一般还包括冗余和备用电源,冗余数据通信连接,环境控制(如空调、灭火器)和安全设备等。早期数据中心主要用来提供互联网基础平台服务及各种增值服务,因此被称为Internet数据中心(IDC),通常由专门的电信业务机构管理运营,提供服务。近年来,随着互联网服务、分布式计算、系统虚拟化等技术的发展和进步,现代IT企业特别是互联网服务企业,均建立了大规模的企业级数据中心,用来提供诸如网络搜索、在线社交网络、在线游戏、在线办公等云服务。另外,公共计算中心和科研院所、高等院校等,也纷纷建立面向高性能科学计算服务的数据中心。现代数据中心密度高,规模大,不仅实现了被安置的计算设备、存储设备对电源、散热等基础设施的共享利用,而且利用其具有的规模化、网络化优势,结合虚拟化技术、并行计算技术,实现了对云计算的高效支撑。目前,在世界范围内,数据中心进入了蓬勃发展期,其建设规模和服务器数量每年都在以惊人的速度增长。在此背景下,数据中心及其网络高效互联技术受到IT业界特别是互联网服务企业和网络设备厂商的重视,目标是实现对数据中心内成千上万台服务器设备的高效互联。传统的树状网络结构的缺点在于,网络带宽的有效利用受限于树状结构和高层设备带宽,同时可靠性和可利用性较差。针对这些问题,研究人员提出了名为胖树(Fat-Tree)的网络结构,它是一种具有高聚合带宽、高性价比、无阻塞、支持多链路等特点的新型数据中心网络拓扑结构。胖树结构完全采用普通的三层交换机进行组网,其网络规模和交换机的端口数量k有关。该网络结构共分4层,最底层为服务器层,互联服务器的交换机从下至上依次构成核心层(Core)、聚合层(Aggregation)、边缘层(Edge)。胖树结构中,一组k/2个聚合层交换机和一组k/2个边缘层交换机构成一个独立的Pod,网络中总共有k个Pod。每个Pod中,聚合层与边缘层的交换机两两互连,每个边缘层交换机的剩余k/2个端口连接k/2台服务器,每个聚合层交换机的剩余k/2个端口依次连接k/2台核心层交换机(共k
2/4台)。图1给出了k=4时的胖树网络结构示意图。胖树结构中网络节点的IP地址配置和其拓扑结构密切相关。具体的IP地址规则定义如下:对于Pod内交换机,IP地址格式为10.PodID.SwitchID.1,其中PodID表示交换机所属Pod编号(PodID∈[0,k-1]),边缘层交换机SwitchID∈[0,k/2-1],聚合层交换机SwitchID∈[k/2,k-1]。对于核心层交换机,IP地址格式为10.k.j.i,其中j的值等于当前交换机所连接的聚合层交换机的SwitchID-k/2+1(j∈[1,k/2]),i用来区分连接到同一台聚合层交换机的k/2台核心层交换机(i∈[1,k/2]。对于服务器,IP地址格式为10.PodID.SwitchID.hostID,其中PodID表示服务器所属Pod的编号,SwitchID和该服务器所连接的边缘层交换机的SwitchID相同,hostID用来区分连接到同一台边缘层交换机的k/2台服务器(hostID∈[2,k/2+1])。当交换机端口数k=4时,所有网络节点的IP地址命名如图1所示。数据中心内的服务器和交换机在提供服务之前,必须进行地址配置。传统的地址配置方法是人工静态配置,这显然无法满足数据中心网络的需求:首先,数据中心的规模是巨大的,大型的数据中心通常有上万台服务器,人工配置会消耗大量的人力和财力,并且非常低效;其次,人工配置容易出错,因为对于服务器数量庞大的数据中心网络,每一台都由人工重复配置地址,出错在所难免,而产生的故障往往难以被检测到,如果再进行检测校正,往往会影响数据中心服务的正常运行。因此,在数据中心网络中有必要采用IP地址自动配置技术。目前网络中,节点的IP地址自动配置主要是采用RFCxa02131定义的动态主机配置协议(Dynamicxa0Hostxa0Configurationxa0Protocol,DHCP)。DHCP协议是BOOTP协议的扩展,协议实现中包含客户端和服务器端两种实体。由客户端向服务器提出IP地址配置申请,服务器根据策略返回相应IP地址配置响应信息。原始的DHCP协议要求客户端和服务器只能在同一个子网中,不可以跨网段工作。DHCP中继的引入解决了这一问题,它在处于不同网段间的DHCP客户端和服务器之间承担中继服务,将DHCP协议报文跨网段中继到目的DHCP服务器,于是不同网络上的DHCP客户端可以共同使用一个DHCP服务器。DHCP中继的工作原理为:DHCP客户端发送请求报文给DHCP服务器,DHCP中继收到该报文并适当处理后,发送给指定的位于其它网段上的DHCP服务器。服务器根据请求报文中提供的必要信息,通过DHCP中继将配置信息返回给客户端,完成对客户端的动态配置。虽然DHCP能够给网络中的节点自动分配IP地址,但是胖树结构的数据中心网络是一种结构化的网络,网络节点的IP地址有特殊的地址命名规则,决定了无法将传统的DHCP协议直接应用于胖树结构网络的IP地址分配。
发明内容本发明要解决的技术问题:人工静态配置数据中心网络节点地址的低效性、易出错性,以及DHCP不能直接应用于结构化数据中心网络的现状。为了解决以上问题,本发明实施例公开了一种胖树结构组网数据中心内部节点IP地址的自动分配方法,包括以下步骤:首先进行DHCP服务初始配置,针对以胖树结构进行组网的数据中心内部网络,修改和自定制网络中的DHCP服务器端和客户端以支持基于规则的IP地址分配;其次是基于DHCP进行具体的IP地址分配,网络节点按照距离DHCP服务器的跳数,逐层由所在Pod中的DHCP服务器进行IP地址分配,其中Pod内的交换机在获得地址后将开启DHCP中继功能。进一步,作为一种优选,进行DHCP服务初始配置进一步包括:步骤101:在每个Pod中任选一台服务器作为DHCP服务器,其IP地址为10.PodID.0.2,PodID∈[0,k-1],k为交换机端口数量,由其负责所在Pod内所有其余的网络节点的地址分配;步骤102:在设备制造阶段,自定制改造每台DHCP服务器,在收到DHCP客户端的地址请求报文时,查看报文中的Hops字段也即DHCP报文经过的DHCP中继的数目、Giaddr字段也即DHCP请求报文经过的第一个DHCP中继的IP地址和Vendorxa0Option字段也即供应商类别标识符,根据此三个字段组成的三元组判断发出地址请求的DHCP客户端在网络拓扑中的位置,从而为该DHCP客户端分配相应的地址段;步骤103:在设备制造阶段,自定制改造任意一个Pod中的DHCP服务器,仅有这台服务器响应Vendorxa0Option字段内容为Corexa0Switch的DHCP报文,即仅有这台DHCP服务器负责所有核心层交换机的IP地址分配;步骤104:在设备制造阶段,自定制改造每个DHCP客户端,其发出申请地址的报文中的Vendorxa0Option字段对应此DHCP客户端在胖树结构网络中的节点类型,包括Host,Podxa0Switch和Corexa0Switch三种字段内容,分别对应网络拓扑中的其它服务器、Pod交换机和核心层交换机;进一步改造DHCP客户端中的Pod交换机,使其默认在获得IP地址后,才能而且必须打开中继功能;步骤105:对DHCP服务器进行地址分配规则设置,具体是首先对接收到的地址请求报文中的Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)进行判断,其中G为地址范围判断,规则如下:如果(H,G,VO)为(0,0.0.0.0,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的与DHCP服务器直接连接的边缘层交换机;如果(H,G,VO)为(1,本Pod中与DHCP服务器直接连接的边缘层交换机IP地址,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的聚合层交换机;如果(H,G,VO)为(1,本Pod中与DHCP服务器直接连接的边缘层交换机IP地址,Host),则发来地址请求的DHCP客户端为本Pod中的与DHCP服务器连接同一台边缘层交换机的其它服务器;如果(H,G,VO)为(2,本Pod中聚合层交换机IP地址,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的不与DHCP服务器直接连接的边缘层交换机;如果(H,G,VO)为(2,负责核心层交换机的Pod中所对应的聚合层交换机IP地址,Corexa0Switch),则发来地址请求的DHCP客户端为核心层交换机。如果(H,G,VO)为(3,本Pod中不与DHCP服务器直接连接的边缘层交换机IP地址,Host),则发来地址请求的DHCP客户端为本Pod中的不与DHCP服务器连接同一台边缘层交换机的其它服务器;进一步,作为一种优选,进行DHCP服务具体的IP分配进一步包括:步骤201:对于每个Pod中与DHCP服务器之间相连的边缘层交换机E
i1,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch;报文不经过中继直接到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(0,0.0.0.0,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的IP地址:10.PodID.0.1;步骤202:得到地址的该边缘层交换机触发DHCP中继功能,中继单播对象设置为给该交换机分配地址的DHCP服务器;步骤203:对于每个Pod中的聚合层交换机A
ix,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch;报文经过中继E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(1,E
i1的IP地址,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.(k/2).1到10.PodID.(k-1).1的IP地址段;步骤204:在步骤203中得到地址的聚合层交换机触发中继功能,并设置中继单播对象为E
i1;步骤205:对于每个Pod中与DHCP服务器连接同一台边缘层交换机的其它服务器,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Host;报文经过步骤201中得到地址的边缘层交换机E
i1到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(1,E
i1的IP地址,Host),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.0.3到10.PodID.0.(k/2+1)的IP地址段;步骤206:对于每个Pod中不与DHCP服务器直接连接的边缘层交换机E
ix,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch;报文经过步骤203中得到地址的任一聚合层交换机A
ix和E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(2,A
ix的IP地址,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.1.1到10.PodID.(k/2-1).1的IP地址段;步骤207:在步骤206中得到地址的边缘层交换机触发中继功能,并设置中继单播对象为A
ix;步骤208:对于核心层交换机,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Corexa0Switch;报文经过负责核心层交换机地址分配的Pod中与该核心层交换机直接相连的聚合层交换机A
ix和边缘层交换机E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(2,A
ix的IP地址,Corexa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.k.(SwitchID-k/2+1).1到10.k.(SwitchID-k/2+1).(k/2)的IP地址段,其中SwitchID表示A
ix的IP地址的第三段的数字;步骤209:核心交换机获得地址后不打开中继选项;步骤210:对于每个Pod中和DHCP服务器不在一个边缘层交换机下的其它服务器,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Host;报文经过与其直接相连的边缘层交换机E
ix、E
ix的中继对象A
ix、E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(3,E
ix的IP地址,Host),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.SwitchID.2到10.PodID.SwitchID.(k-1)的IP地址段,其中SwitchID等于E
ix的IP地址第三段的数字。进一步,作为一种优选,在进行DHCP服务具体的IP分配步骤之后还包括:对于物理连线错误和节点瘫痪进行判断和解决步骤。进一步,作为一种优选,对于物理连线错误和节点瘫痪进行判断和解决步骤具体包括:步骤301:如果网络节点之间的物理连线出现错误,则在DHCP服务器中查看报文中的Hops、Giaddr和Vendorxa0Option字段,如果这三个字段内容不符合步骤105中的判断规则,则说明网络的物理连接有误,DHCP服务器通过日志记录下该DHCP客户端的信息,并进行告警;步骤302:DHCP服务器采用数据中心内部备份的方法周期性存储自身信息;如果是DHCP服务器发生故障或瘫痪,则将启用新服务器替换,然后再下载已备份的数据进行恢复;如果是DHCP客户端的网络节点发生故障或瘫痪,则首先找到其MAC地址,然后由人工把分配的记录从DHCP服务器的记录库中删除,再加入替换节点,然后按照步骤201-210的方法重新为其分配地址。本发明这种分配方法将胖树结构的数据中心网络与DHCP结合,不仅实现了对胖树结构组网的数据中心网络中所有节点地址的自动分配,而且可以探测和解决网络异常问题,节省大量的人力物力,保障数据中心网络的正常、稳定运行。
附图说明当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,其中:图1是当交换机端口数为4时,胖树结构数据中心网络拓扑图。图2是当交换机端口数为4时,Podxa00中的DHCP服务器地址分配示意图。图3是当交换机端口数为4时,Podxa00中与DHCP服务器直接连接的边缘层交换机地址分配示意图。图4是当交换机端口数为4时,Podxa00为本Pod聚合层交换机地址分配示意图。图5是当交换机端口数为4时,Podxa00为与DHCP服务器在同一个边缘层交换机下的其它服务器地址分配示意图。图6是当交换机端口数为4时,Podxa00为本Pod不与DHCP服务器直接连接的边缘层交换机地址分配示意图。图7是当交换机端口数为4时,Podxa00为核心层第一台交换机地址分配示意图。图8是当交换机端口数为4时,Podxa00为与DHCP服务器不在同一个边缘层交换机下的服务器地址分配示意图。
具体实施方式为使上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的一种利用DHCP为胖树结构组网的数据中心节点分配IP地址的方法,该方法针对胖树结构网络拓扑,首先自定制改造网络中的DHCP服务器端和客户端,IP地址由每个Pod中的DHCP服务器进行分配,网络节点按照距离DHCP服务器的跳数进行逐层分配,其中和DHCP服务器不直接相连接的pod内的交换机进行中继服务,并且为避免地址分配混乱,核心层交换机的地址仅有一个Pod中的DHCP服务器负责分配,从而实现该数据中心网络中节点IP地址的自动分配,最后对于数据中心网络中容易出现的物理连线错误和网络节点瘫痪,提出相对应的解决方案。本发明实施例的一种基于DHCP的胖树结构组网的数据中心节点IP地址的分配方法,其具体的实施方式在于下面三个部分步骤:第一部分步骤,DHCP服务初始配置;第二部分步骤,DHCP服务具体的IP分配过程;第三部分步骤,对于网络异常的处理方法。在DHCP服务初始配置阶段,步骤如下:步骤101:在每个Pod中任选一台服务器作为DHCP服务器,其IP地址为10.PodID.0.2(PodID∈[0,k-1],k为交换机端口数量),由其负责所在Pod内所有其余的网络节点(包括交换机和其它服务器)的地址分配。按照胖树结构节点地址命名规则,为每个Pod中的DHCP服务器分配地址,格式为10.PodID.0.2。例如Podxa00中的DHCP服务器的地址为10.0.0.2,如图2所示。步骤102:在设备制造阶段,自定制改造每台DHCP服务器,在收到DHCP客户端的地址请求报文时,查看报文中的Hops字段也即DHCP报文经过的DHCP中继的数目、Giaddr字段也即DHCP请求报文经过的第一个DHCP中继的IP地址和Vendorxa0Option字段也即供应商类别标识符,根据此三个字段组成的三元组判断发出地址请求的DHCP客户端在网络拓扑中的位置,从而为该DHCP客户端分配相应的地址段。步骤103:在设备制造阶段,自定制改造任意一个Pod中的DHCP服务器,仅有这台服务器响应Vendorxa0Option字段内容为Corexa0Switch的DHCP报文,即仅有这台DHCP服务器负责所有核心层交换机的IP地址分配。步骤104:在设备制造阶段,自定制改造每个DHCP客户端,其发出申请地址的报文中的Vendorxa0Option字段对应此DHCP客户端在胖树结构网络中的节点类型,包括Host,Podxa0Switch和Corexa0Switch三种字段内容,分别对应网络拓扑中的其它服务器、Pod交换机和核心层交换机。进一步改造DHCP客户端中的Pod交换机,使其默认在获得IP地址后,才能而且必须打开中继功能。步骤105:对DHCP服务器进行地址分配规则设置,具体是首先对接收到的地址请求报文中的Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)进行判断,其中G为地址范围判断,规则如下:如果(H,G,VO)为(0,0.0.0.0,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的与DHCP服务器直接连接的边缘层交换机;如果(H,G,VO)为(1,本Pod中与DHCP服务器直接连接的边缘层交换机IP地址,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的聚合层交换机;如果(H,G,VO)为(1,本Pod中与DHCP服务器直接连接的边缘层交换机IP地址,Host),则发来地址请求的DHCP客户端为本Pod中的与DHCP服务器连接同一台边缘层交换机的其它服务器;如果(H,G,VO)为(2,本Pod中聚合层交换机IP地址,Podxa0Switch),则发来地址请求的DHCP客户端为本Pod中的不与DHCP服务器直接连接的边缘层交换机;如果(H,G,VO)为(2,负责核心层交换机的Pod中所对应的聚合层交换机IP地址,Corexa0Switch),则发来地址请求的DHCP客户端为核心层交换机。如果(H,G,VO)为(3,本Pod中不与DHCP服务器直接连接的边缘层交换机IP地址,Host),则发来地址请求的DHCP客户端为本Pod中的不与DHCP服务器连接同一台边缘层交换机的其它服务器;除去这六种情况之外,DHCP服务器接收到的其他三元组形式皆认为网络异常,DHCP服务器则进行日志记录并告警。在DHCP服务具体的IP分配过程,执行以下步骤。步骤201:对于每个Pod中与DHCP服务器之间相连的边缘层交换机E
i1,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch。报文不经过中继直接到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(0,0.0.0.0,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的IP地址:10.PodID.0.1。例如Podxa00中DHCP服务器为与其直接相连的边缘层交换机E
i1所分配的地址为10.0.0.1,如图3所示。步骤202:得到地址的该边缘层交换机触发DHCP中继功能,中继单播对象设置为给该交换机分配地址的DHCP服务器。例如Podxa00中边缘层交换机10.0.0.1设置其中继单播对象为DHCP服务器10.0.0.2。步骤203:对于每个Pod中的聚合层交换机A
ix,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch。报文经过中继E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(1,E
i1的IP地址,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.(k/2).1到10.PodID.(k-1).1的IP地址段。例如Podxa00中DHCP服务器10.0.0.2通过边缘层交换机10.0.0.1的DHCP中继为聚合层交换机分配从10.0.2.1到10.0.3.1的IP地址段,如图4所示。步骤204:在步骤204中得到地址的聚合层交换机触发中继功能,并设置中继单播对象为E
i1。步骤205:对于每个Pod中与DHCP服务器连接同一台边缘层交换机的其它服务器,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Host。报文经过步骤201中得到地址的边缘层交换机E
i1到达DHCP服务器,DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(1,E
i1的IP地址,Host),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.0.3到10.PodID.0.(k/2+1)的IP地址段。例如Podxa00中DHCP服务器10.0.0.2通过边缘层交换机10.0.0.1的DHCP中继为该Pod中的其它服务器分配从10.0.0.3到10.0.0.3的IP地址段,如图5所示。步骤206:对于每个Pod中不与DHCP服务器直接连接的边缘层交换机E
ix,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Podxa0Switch。报文经过步骤203中得到地址的任一聚合层交换机A
ix和E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和VendorOption字段组成的三元组(H,G,VO)为(2,A
ix的IP地址,Podxa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.1.1到10.PodID.(k/2-1).1的IP地址段。例如Podxa00中DHCP服务器10.0.0.2通过聚合层交换机(10.0.2.1或10.0.3.1)及边缘层交换机10.0.0.1的DHCP中继,为不与其直接连接的边缘层交换机所分配的地址段为从10.0.1.1到10.0.1.1,如图6所示。步骤207:在步骤206中得到地址的边缘层交换机触发中继功能,并设置中继单播对象为A
ix。例如,Podxa00中边缘层交换机10.0.1.1设置其中继单播对象为响应其DHCP请求的聚合层交换机(10.0.2.1或10.0.3.1)。步骤208:对于核心层交换机,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Corexa0Switch;报文经过负责核心层交换机地址分配的Pod中与该核心层交换机直接相连的聚合层交换机A
ix和边缘层交换机E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(2,A
ix的IP地址,Corexa0Switch),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.k.(SwitchID-k/2+1).1到10.k.(SwitchID-k/2+1).(k/2)的IP地址段,其中SwitchID表示A
ix的IP地址的第三段的数字。例如Podxa00中DHCP服务器10.0.0.2通过聚合层交换机10.0.2.1及边缘层交换机10.0.0.1的DHCP中继为与10.0.2.1直接相连的某核心层交换机分配IP地址为10.4.1.1,如图7所示。同理,该DHCP服务器通过聚合层交换机10.0.2.1可为核心层交换机分配从10.4.1.1到10.4.1.2的IP地址段,通过聚合层交换机10.0.3.1可为核心层交换机分配从10.4.2.1到10.4.2.2的IP地址段,如图1所示。步骤209:核心交换机获得地址后不打开中继选项。步骤210:对于每个Pod中和DHCP服务器不在一个边缘层交换机下的其它服务器,发起地址请求的报文中Hops字段值为0,Giaddr字段值为0,Vendorxa0Option字段值为Host。报文经过与其直接相连的边缘层交换机E
ix、E
ix的中继对象A
ix、E
i1到达DHCP服务器。DHCP服务器接收到报文后,报文中Hops字段、Giaddr字段和Vendorxa0Option字段组成的三元组(H,G,VO)为(3,E
ix的IP地址,Host),则依据步骤105中的判断策略,DHCP服务器为该DHCP客户端分配相应的从10.PodID.SwitchID.2到10.PodID.SwitchID.(k-1)的IP地址段,其中SwitchID等于E
ix的IP地址第三段的数字。例如Podxa00中DHCP服务器10.0.0.2通过边缘层交换机10.0.1.1及其中继对象,以及边缘层交换机10.0.0.1的DHCP中继,为10.0.1.1下的服务器分配从10.0.1.2到10.0.1.3的IP地址段,如图8所示。在对于网络节点故障的处理部分,执行以下步骤:步骤301:如果网络节点之间的物理连线出现错误,则可以在DHCP服务器中查看报文中的Hops、Giaddr和Vendorxa0Option字段,如果这三个字段内容不符合步骤105中的判断规则,则说明网络的物理连接有误,DHCP服务器通过日志记录下该DHCP客户端的信息,并进行告警。例如,出现与步骤105的判断规则相悖的情况,则可以通过软件告警信息或日志提示网络管理员,发现网络中与胖树结构有违的物理连接,以进行相应的调整。步骤302:由于一些不可预知的自然原因如火灾或地震,或者是一些偶然因素如电路短路等,网络中的任何节点都有可能发生故障甚至是瘫痪,因此DHCP服务器采用数据中心内部备份的方法周期性存储自身信息。如果是DHCP服务器发生故障或瘫痪,则将其用新服务器替换,然后在下载已备份的数据进行恢复。如果是其它非DHCP服务器的网络节点发生故障或瘫痪,则首先找到该节点的MAC地址,然后由人工把分配的记录从DHCP服务器的库中删除,再加入替换节点,然后按照第二部分的方法重新为其分配地址。例如,DHCP服务器10.0.0.2的信息可以备份在其它任何一台或多台服务器上,在需要的时候可以进行恢复操作,如图1所示。当有任何一个网络节点发生故障或瘫痪而被更换时,新替换的设备可以通过广播DHCP报文来触发步骤201-210的执行从而重新获得IP地址。虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些具体实施方式仅是举例说明,本领域的技术人员在不脱离本发明的原理和实质的情况下,可以对上述方法和系统的细节进行各种省略、替换和改变。例如,合并上述方法步骤,从而按照实质相同的方法执行实质相同的功能以实现实质相同的结果则属于本发明的范围。因此,本发明的范围仅由所附权利要求书限定。